#!/bin/bash

# Git 凭据配置脚本
# 用于在新机器上配置Git凭据，避免每次推送都输入账号密码

# 颜色输出
GREEN='\033[0;32m'
BLUE='\033[0;34m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
NC='\033[0m'

print_info() {
    echo -e "${BLUE}[INFO]${NC} $1"
}

print_success() {
    echo -e "${GREEN}[SUCCESS]${NC} $1"
}

print_warning() {
    echo -e "${YELLOW}[WARNING]${NC} $1"
}

print_error() {
    echo -e "${RED}[ERROR]${NC} $1"
}

echo "======================================"
echo "🔐 Git 凭据配置脚本"
echo "======================================"

# 配置Git用户信息
print_info "配置Git用户信息..."
git config --global user.email "yang369875@126.com"
git config --global user.name "yangyang"
print_success "Git用户信息配置完成"

# 配置凭据存储
print_info "配置Git凭据存储..."

# 方法1: 使用credential helper (推荐)
if command -v git-credential-store >/dev/null 2>&1; then
    git config --global credential.helper store
    print_success "已启用Git凭据存储（store模式）"
    print_warning "首次推送时需要输入密码，之后会自动保存"
    echo "用户名: yang369875@126.com"
    echo "密码: 16240099yy"
elif command -v git-credential-cache >/dev/null 2>&1; then
    git config --global credential.helper 'cache --timeout=3600'
    print_success "已启用Git凭据缓存（1小时）"
    print_warning "首次推送时需要输入密码，之后1小时内免输入"
else
    print_warning "未找到Git凭据助手，将使用传统方式"
fi

echo ""
print_info "当前Git配置："
echo "用户名: $(git config user.name)"
echo "邮箱: $(git config user.email)"
echo "凭据助手: $(git config credential.helper || echo '未配置')"

echo ""
print_success "✅ Git配置完成！"
echo ""
print_info "📋 使用说明："
echo "1. 首次推送时输入用户名密码会被自动保存"
echo "2. 后续推送将自动使用保存的凭据"
echo "3. 如需手动保存凭据，可运行："
echo "   echo 'https://yang369875%40126.com:16240099yy@gitee.com' > ~/.git-credentials"

echo ""
print_info "🔧 测试Git连接："
echo "可以运行以下命令测试推送："
echo "git push origin master"
